const fs = require('fs')
const path = require('path')
// 使用正则匹配style和script标签
const regStyle = /<style>[\s\S]*<\/style>/
const reGScript = /<script>[\s\S]*<\/script>/

fs.readFile(path.join(__dirname,'/素材/index.html'),'utf8',function(err,dataStr){
    if(err){
        return console.log('读取素材失败'+err.message);
    }
    // 分别拆解css js html
   resolveCss(dataStr)
   resolveJS(dataStr)
   resolveHtml(dataStr)
})
// 处理css样式
function resolveCss(htmlStr){
    // 使用正则提取内容
    const r1 = regStyle.exec(htmlStr)
    // 将取出的内容进行replace替换操作

    const newCSS = r1[0].replace('<style>','').replace('</style>','')
    console.log(newCSS);
    // 将提取的样式放入到newhtml文件中
    fs.writeFile(path.join(__dirname,'/newhtml/index.css'),newCSS,function(err){
        if(err){
            return console.log('写入css失败'+err.message);
        }else{
            console.log('css文件写入成功');
        }
    })
}

// 处理js

function resolveJS(htmlStr){
 // 使用正则提取内容
 const r2 = reGScript.exec(htmlStr)
 // 将取出的内容进行replace替换操作

 const newJS = r2[0].replace('<script>','').replace('</script>','')
 console.log(newJS);
 // 将提取的js放入到newhtml文件中
 fs.writeFile(path.join(__dirname,'/newhtml/index.js'),newJS,function(err){
     if(err){
         return console.log('写入JS失败'+err.message);
     }else{
         console.log('JS文件写入成功');
     }
 })
}

// 处理html内容结构

function resolveHtml(htmlStr){
    // 将字符串replace方法把style和script替换为link及script标签
    const newHtml= htmlStr.replace(regStyle,'<link rel="stylesheet" href="./index.css>"/>').replace(reGScript,'<script src="./index.js"></script>')

    // 写入index.html文件
    fs.writeFile(path.join(__dirname,'/newhtml/index.html'),newHtml,function(err){
        if(err){
            return console.log('写入html文件失败'+err.message);
        }else{
            console.log('写入html文件成功');
        }

    })

}


// 注意要创建newhtml文件夹
// 重复调用fs.writeFile写入同一个文件，新写入的内容会覆盖旧的内容